package com.aco.fatureapp.printer.libs;

import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;

public class BarCode {

	public static void drawBarCode128C(Canvas g, String value, int _x, int _y,
			int _w, int _h) {
		String[] C128 = { "212222", "222122", "222221", "121223", "121322",
				"131222", "122213", "122312", "132212", "221213", "221312",
				"231212", "112232", "122132", "122231", "113222", "123122",
				"123221", "223211", "221132", "221231", "213212", "223112",
				"312131", "311222", "321122", "321221", "312212", "322112",
				"322211", "212123", "212321", "232121", "111323", "131123",
				"131321", "112313", "132113", "132311", "211313", "231113",
				"231311", "112133", "112331", "132131", "113123", "113321",
				"133121", "313121", "211331", "231131", "213113", "213311",
				"213131", "311123", "311321", "331121", "312113", "312311",
				"332111", "314111", "221411", "431111", "111224", "111422",
				"121124", "121421", "141122", "141221", "112214", "112412",
				"122114", "122411", "142112", "142211", "241211", "221114",
				"413111", "241112", "134111", "111242", "121142", "121241",
				"114212", "124112", "124211", "411212", "421112", "421211",
				"212141", "214121", "412121", "111143", "111341", "131141",
				"114113", "114311", "411113", "411311", "113141", "114131",
				"311141", "411131", "211412", "211214", "211232", "2331112" };

		String bar = new String();
		bar += C128[105];
		String cod;
		int j = 1, dac = 105, icod = 0;
		for (int i = 0; i < value.length(); i += 2, j++) {
			cod = value.substring(i, i + 2);
			icod = Integer.parseInt(cod.toString());
			dac = (dac + (icod * j));
			bar += C128[icod];
		}
		dac = (dac % 103);
		bar += C128[dac];
		bar += C128[106];

		boolean B = true;
		int p = 0;
		int wid = 0, x = _x;

		Paint pBlack = new Paint(Color.BLACK);

		while (p < bar.length()) {
			wid = (bar.charAt(p) - 48) * 2;
			if (B) {
				g.drawRect(new Rect(x, _y, x + wid, _y + _h), pBlack);
			}
			p++;
			B = !B;
			x += wid;
		}
	}
}
